package com.clarte.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component("springUtil")
public class SpringUtil implements ApplicationContextAware {	
	private static ApplicationContext ctx;
	private static EntityManagerFactory factory;
	
	@Override
	public void setApplicationContext(ApplicationContext arg0)
			throws BeansException {
		ctx = arg0;
	}
	
	public static <T> T getBean(String beanid){
    	return (T) ctx.getBean(beanid);
    }
	
	public static EntityManager getEntityManager(){
		if (factory == null)
			factory = getBean("entityManagerFactory");
		return factory.createEntityManager();
	}
}
